home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / gpen32k / source.exe / SRC / GPEN.C next >
C/C++ Source or Header  |  1993-08-02  |  2KB  |  99 lines

  1.  
  2. /*    GPenシリーズ完全互換関数    */
  3.  
  4. #include    <stdlib.h>
  5. #include    <math.h>
  6. #include    <EGB.H>
  7. #include    <MOS.H>
  8. #include    <kkstr2.h>
  9. #include    <NORMLIB.H>
  10. #include    <okome.h>
  11. #include    <gpen.h>
  12. /*    GpenSub.h include禁止    */
  13.  
  14. void bsz( int *l, int *b )
  15. {
  16.     int i;
  17.     if ( *l > *b )
  18.     {
  19.         i = *b;
  20.         *b = *l;
  21.         *l = i;
  22.     }
  23. }
  24.  
  25. void uboxf( int x1, int y1, int x2, int y2, int c1, int c2, int c3 )
  26. {
  27.     boxf( x1, y1, x2, y2, c3 );
  28.     ubox( x1, y1, x2, y2, c1, c2 );
  29. }
  30.  
  31. void end( void )        /*    終わりのまとまり    */
  32. {
  33.     free(vp0);
  34.     KAN_disp(KAN_DISPOFF);
  35.     wpg( 1 );
  36.     EGB_clearScreen( work );
  37.     wpg( 0 );
  38.     EGB_clearScreen( work );
  39.     KAN_finish();
  40.     MOS_end();
  41.     exit(0);
  42. }
  43.  
  44. void udten(int x1, int y1, int x2, int y2)
  45. {
  46.     int y, l;
  47.     char v[1024], w[1024];
  48.     bsz( &x1, &x2 );
  49.     bsz( &y1, &y2 );
  50.     for (y=0; y<y2-y1; y+=2)
  51.     {
  52.         l=y;
  53.         if ((y2-y1) % 2==0 && y*2>=(y2-y1))
  54.             l+=1;
  55.         egbget(x1, y1+l, x2, y1+l, v);
  56.         egbget(x1, y2-l, x2, y2-l, w);
  57.         egbput(x1, y1+l, x2, y1+l, w);
  58.         egbput(x1, y2-l, x2, y2-l, v);
  59.     }
  60. }
  61.  
  62. void lrten(int x1, int y1, int x2, int y2)
  63. {
  64.     int x,l;
  65.     char v[1024], w[1024];
  66.     bsz( &x1, &x2 );
  67.     bsz( &y1, &y2 );
  68.     for (x=0; x<x2-x1; x+=2)
  69.     {
  70.         l=x;
  71.         if ((x2-x1) % 2==0 && x*2>=(x2-x1))
  72.             l+=1;
  73.         egbget(x1+l, y1, x1+l, y2, v);
  74.         egbget(x2-l, y1, x2-l, y2, w);
  75.         egbput(x1+l, y1, x1+l, y2, w);
  76.         egbput(x2-l, y1, x2-l, y2, v);
  77.     }
  78. }
  79.  
  80. void circlen2(int x1, int y1, int x2, int y2, int c )
  81. {
  82.     circle( x1,y1, sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)), 0x2, c );
  83. }
  84.  
  85. void circlef2(int x1, int y1, int x2, int y2, int c )
  86. {
  87.     circle( x1,y1, sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)), 0x22, c );
  88. }
  89.  
  90. void circlenl(int x1, int y1, int x2, int y2, int c )
  91. {
  92.     circlel( x1,y1, x2-x1,y2-y1, 0x2, c );
  93. }
  94.  
  95. void circlefl(int x1, int y1, int x2, int y2, int c )
  96. {
  97.     circlel( x1,y1, x2-x1,y2-y1, 0x22, c );
  98. }
  99.